home *** CD-ROM | disk | FTP | other *** search
/ ASME's Mechanical Engine…ing Toolkit 1997 December / ASME's Mechanical Engineering Toolkit 1997 December.iso / c_lang / mssup201.z00 / msc.c < prev    next >
C/C++ Source or Header  |  1988-08-24  |  2KB  |  74 lines

  1. /* @(#) msc.c */
  2.  
  3. int _stklen = 30000;        /* stack size in bytes */
  4. _setenvp() {}           /* don't initialize environment pointer etc. */
  5. #include <fcntl.h>
  6. unsigned _fmode = O_BINARY;
  7.  
  8. #ifdef LINT_ARGS
  9. void dosname (char *, char *);
  10. char *strcpy (char *, char *);
  11. #else
  12. void dosname ();
  13. char *strcpy ();
  14. #endif
  15.  
  16. /****************
  17. function trunc() truncates a file -- ok to be a no-op
  18. */
  19.  
  20. int trunc (handle)
  21. int handle;
  22. {
  23.     /* avoid compiler warning about unused argument */
  24.     return (handle - handle);
  25. }
  26.  
  27. /****************
  28. Function fixfname() converts the supplied filename to a syntax
  29. legal for the host system.  It is used during extraction.
  30. */
  31.  
  32. char *fixfname(fname)
  33. char *fname;
  34. {
  35.     char tmpname[PATHSIZE];
  36.     dosname (nameptr(fname), tmpname);
  37.     strcpy(fname,tmpname);
  38.     return(fname);
  39. }
  40.  
  41. #include <signal.h>
  42. #include "intdos.h"
  43.  
  44. static int set_break (flag)
  45. int flag;
  46. {
  47.     int retval;
  48.     union REGS regs;
  49.     regs.x.ax = 0x3300;                /* get ctrl-break flag */
  50.     intdos (®s, ®s);
  51.     retval = regs.h.dl;                /* retval is old value of setting */
  52.     regs.x.ax = 0x3301;                /* set ctrl-break flag */
  53.     regs.h.dl = flag;                /* status to set to */
  54.     intdos (®s, ®s);
  55.     return (retval);
  56. }
  57.  
  58. static int break_flag;
  59.  
  60. int zooexit (status)
  61. int status;
  62. {
  63.     set_break (break_flag);            /* restore control_break setting */
  64.     exit (status);
  65. }
  66.  
  67. void gentab (void);
  68.  
  69. void spec_init()
  70. {
  71.     break_flag = set_break (0);
  72.     signal (SIGINT, zooexit);        /* install our own control-C handler */
  73. }
  74.